Developer Documentation
[Home]

Glossary


abstract type

Defines, in information property lists, general characteristics of a family of documents. Each abstract type has corresponding concrete types. See also concrete type.

address space

Describes the range of memory (both physical and virtual) that a process uses while running. In Mac OS X, processes do not share address space.

alias

A lightweight reference to files and folders in Mac OS Standard (HFS) and Mac OS Extended (HFS+) file systems. An alias allows multiple references to files and folders without requiring multiple copies of these items. Aliases are not as fragile as symbolic links because they identify the volume and location on disk of a referenced file or folder; the referenced file or folder can be moved around without breaking the alias. See also symbolic link.

Apple event

A high-level operating-system event that conforms to the Apple Event Interprocess Messaging Protocol (AEIMP). An Apple event typically consists of a message from an application to itself or to another application.

AppleTalk

A suite of network protocols that is standard on Macintosh computers and can be integrated with other network systems, such as the Internet.

Application Kit

A Cocoa framework that implements an application's user interface. The Application Kit provides a basic program structure for applications that draw on the screen and respond to events.

ASCII

American Standard Code for Information Interchange. A 7-bit character set (commonly represented using 8-bits) that defines 128 unique character codes. See also Unicode.

BSD

Berkeley Software Distribution. Formerly known as the Berkeley version of UNIX, BSD is now simply called the BSD operating system. The BSD portion of Mac OS X is based on 4.4BSD Lite 2 and FreeBSD, a "flavor" of 4.4BSD.

buffered window

A window with a memory buffer into which all drawing is rendered. All graphics are first drawn in the buffer, then the buffer is flushed to the screen.

bundle

A directory in the file system that stores executable code and the software resources related to that code. Applications, plug-ins, and frameworks are types of bundles. Except for frameworks, bundles are file packages, presented by the Finder as a single file.

Carbon

An application environment on Mac OS X that features a set of programming interfaces derived from earlier versions of the Mac OS. The Carbon APIs have been modified to work properly with Mac OS X, especially with the foundation of the operating system, the kernel environment. Carbon applications can run on Mac OS X, Mac OS 9, and all versions of Mac OS 8 later than Mac OS 8.1.

CFM

Code Fragment Manager, the library manager and code loader for processes based on PEF object files (Carbon).

class

In object-oriented languages such as Java and Objective-C, a prototype for a particular kind of object. A class definition declares instance variables and defines methods for all members of the class. Objects that have the same types of instance variables and have access to the same methods belong to the same class.

Classic

An application environment on Mac OS X that lets you run non-Carbon legacy Mac OS software. It supports programs built for both Power PC and 68k chip architectures and is fully integrated with the Finder and the other application environments.

Cocoa

An advanced object-oriented development platform on Mac OS X. Cocoa is a set of frameworks with programming interfaces in both Java and Objective-C. It is based on the integration of OPENSTEP, Apple technologies, and Java.

compositing

A method of overlaying separately rendered images into a final image. It encompasses simple copying as well as more sophisticated operations that take advantage of transparency.

cooperative multitasking

A multitasking environment in which a running program can receive processing time only if other programs allow it; each application must give up control of the processor "cooperatively" in order to allow others to run. Mac OS 8 and 9 are cooperative multitasking environments. See also preemptive multitasking.

Darwin

Another name for the Mac OS X core operating system. The Darwin kernel is equivalent to the Mac OS X kernel plus the BSD libraries and commands essential to the BSD Commands environment. Darwin is Open Source technology.

demand paging

An operating system facility that causes pages of data to be brought from disk into physical memory only as they are needed.

device driver

A component of an operating system that deals with getting data to and from a device, as well as the control of that device.

DVD

Digital Versatile Disc or Digital Video Disc. An optical storage medium that provides greater capacity and bandwidth than CD-ROM; DVDs are frequently used for multimedia as well as data storage.

dyld

Dynamic link editor. The library manager for processes based on Mach-O object files.

dynamic shared library

A library whose code can be shared by multiple, concurrently running programs. Programs share exactly one physical copy of the library code and do not require their own copies of that code. With dynamic shared libraries, a program not only attempts to resolve all undefined symbols at runtime, but attempts to do so only when those symbols are referenced during program execution.

Ethernet

A high-speed local area network technology.

exception

An interruption to the normal flow of program control caused by the program itself.

file package

A folder that the Finder presents to users as if it were a file. In other words, the Finder hides the contents of the folder from users. This opacity discourages users from inadvertently (or intentionally) altering the contents of the bundle.

firewall

Software (or a computer running such software) that prevents unauthorized access to a network, by users outside of the network. (A physical firewall prevents the spread of fire between two physical locations; the software analog prevents the spread of unauthorized data).

fork

A stream of data that can be opened and accessed individually under a common filename. The Mac Standard and Extended file systems store a separate "data" fork and a "resource" fork as part of every file; data in each fork can be accessed and manipulated independently of the other. In BSD, fork is a system call that creates a new process.

framework

A type of bundle that packages a dynamic shared library with the resources that the library requires, including header files and reference documentation.

HFS

Hierarchical File System. The Mac OS Standard file-system format, used to represent a collection of files as a hierarchy of directories (folders), each of which may contain either files or folders themselves. HFS is a two-fork volume format.

HFS+

Hierarchical File System Plus. The Mac OS Extended file system format. This file-system format was introduced as part of Mac OS 8.1, adding support for file names longer than 31 characters, Unicode representation of file and directory names, and efficient operation on very large disks. HFS+ is a multiple-fork volume format.

host

The computer that's running (is host to) a particular program. The term is usually used to refer to a computer on a network.

information property list

A property list that contains essential configuration information for bundles. A file named Info.plist (or a platform-specific variant of that filename) contains the information property list and is packaged inside the bundle.

inheritance

In object-oriented programming, the ability of a superclass to pass its characteristics (methods and instance variables) on to its subclasses.

internationalization

The design or modification of a software product, including online help and documentation, to facilitate localization. Internationalization of software typically involves writing or modifying code to make use of locale-aware operating-system services for appropriate localized text input, display, formatting, and manipulation. See also localization.

instance

In object-oriented languages such as Java and Objective-C, an object that belongs to (is a member of) a particular class. Instances are created at runtime according to the specification in the class definition.

kernel

The complete Mac OS X core operating-system environment which includes Mach, BSD, the I/O Kit, file systems, and networking components. Also called the kernel environment.

key

An arbitrary value (usually a string) used to locate a datum in a data structure such as a dictionary.

localization

The adaptation of a software product, including online help and documentation, for use in one or more regions of the world, in addition to the region for which the original product was created. Localization of software can include translation of user-interface text, resizing of text-related graphical elements, and replacement or modification of user-interface images and sound. See also internationalization.

Mach

The lowest level of the Mac OS X kernel. Mach provides such basic services and abstractions as threads, tasks, ports, interprocess communication (IPC), scheduling, physical and virtual address space management, virtual memory, and timers.

Mach-O

Mach object file format.

main thread

By default, a process has one thread, the main thread. If a process has multiple threads, the main thread is the first thread in the process. A user process can use the POSIX thread APIs to create other user threads.

major version

A framework version specifier designating a framework that is incompatible with programs linked with a previous version of the framework's dynamic shared library.

makefile

A specification file used by the program make to build an executable version of an application. A makefile details the files, dependencies, and rules by which the application is built.

memory protection

A system of memory management in which programs are prevented from being able to modify or corrupt the memory partition of another program. Mac OS 8 and 9 do not have memory protection; Mac OS X does.

memory-mapped files

A facility that maps virtual memory onto a physical file. Thereafter, any access to that part of virtual memory causes the corresponding page of the physical file to be accessed. The contents of the file can be changed by changing the contents in the memory.

method

In object-oriented programming, a procedure that can be executed by an object.

minor version

A framework version specifier designating a framework that is compatible with programs linked with later builds of the framework within the same major version.

multicast

A process in which a single network packet may be addressed to multiple recipients. Multicast is used, for example, in streaming video, in which many megabytes of data are sent over the network.

multihoming

The ability to have multiple network addresses in one computer. For example, multihoming might be used to create a system in which one address is used to talk to hosts outside a firewall and the other to talk to hosts inside; the computer provides facilities for passing information between the two.

multitasking

The concurrent execution of multiple programs. Mac OS X uses preemptive multitasking. Mac OS 8 and 9 use cooperative multitasking.

network

A group of hosts that can directly communicate with each other.

NFS

Network File System. An NFS file server allows users on the network to share files on other hosts as if they were on their own local disks.

Open Transport

Open Transport is a communications architecture for implementing network protocols and other communication features on computers running the Mac OS. Open Transport provides a set of programming interfaces that supports, among other things, both the AppleTalk and TCP/IP protocols.

Open Source

A definition of software which includes freely available access to source code, redistribution, modification, and derived works. The full definition is available at www.opensource.org.

nonretained window

A window without an off-screen buffer for screen pixel values.

object

A programming unit that groups together a data structure (instance variables) and the operations (methods) that can use or affect that data. Objects are the principal building blocks of object-oriented programs.

physical address

An address to which a hardware device, such as a memory chip, can directly respond. Programs, including the Mach kernel, use virtual addresses that are translated to physical addresses by mapping hardware controlled by the Mach kernel.

pixel

The basic logical unit of programmable color on a computer display or in a computer image. The physical size of a pixel depends on the resolution of the display screen.

PEF

Preferred Executable Format. An executable format understood by the Code Fragment Manager.

POSIX

The Portable Operating System Interface. An operating-system interface standardization effort supported by ISO/IEC, IEEE, and The Open Group.

port

In Mach, a secure unidirectional channel for communication between tasks running on a single system. In IP transport protocols, an integer identifier used to select a receiver for an incoming packet or to specify the sender of an outgoing packet.

preemptive multitasking

A type of multitasking in which the operating system can interrupt a currently running task in order to run another task, as needed. See also cooperative multitasking.

preemption

The act of interrupting a currently running task in order to give time to another task.

process

A BSD abstraction for a running program. A process' resources include a virtual address space, threads, and file descriptors. In Mac OS X, a process is based on one Mach task and one or more Mach threads.

property list

A structured, textual representation of data that uses the Extensible Markup Language (XML) as the structuring medium. Elements of a property list represent data of certain types, such as arrays, dictionaries, and strings.

Pthreads

POSIX Threads package (BSD).

RAM

Random-access memory. Memory that a microprocessor can either read or write to.

real time

In reference to operating systems, a guarantee of a certain capability within a specified time constraint, thus permitting predictable, time-critical behavior. If the user defines or initiates an event and the event occurs instantaneously, the computer is said to be operating in real time. Real-time support is especially important for multimedia applications.

retained window

A window with an off-screen buffer for screen pixel values. Images are rendered into the buffer for any portions of the window that aren't visible onscreen.

role

An identifier of an application's relation to a document type. There are three roles: Editor (reads and modifies), Viewer (can only read), and None(declares information about type). You specify document roles in an application's information property list.

ROM

Read-only memory, that is, memory that cannot be written to.

SCSI

Small Computer Systems Interface. A standard connector and communications protocol used for connecting devices such as disk drives to computers.

scheduling

The determination of when each process or task runs, including assignment of start times.

SMP

Symmetric multiprocessing. A feature of an operating system in which two or more processors are managed by one kernel, sharing the same memory, having equal access to I/O devices, and in which any task, including kernel tasks, can run on any processor.

socket

In BSD-derived systems, a socket refers to different entities in user and kernel operation. For a user process, a socket is a file descriptor that has been allocated using socket(2). For the kernel, a socket is the data structure that is allocated when the kernel's implementation of the socket(2) call is made. In AppleTalk protocols, a socket serves the same purpose as a "port" in IP transport protocols.

subframework

A public framework that packages a specific Apple technology, such as Apple events or Open Transport. Through various mechanisms, Apple prevents or discourages developers from including or directly linking with subframeworks. See also umbrella framework.

symbolic link

A lightweight reference to files and folders in UFS file systems. A symbolic link allows multiple references to files and folders without requiring multiple copies of these items. Symbolic links are fragile because if what they refer to moves somewhere else in the file system, the link breaks. However, they are useful in cases where the location of the referenced file or folder will not change. See also alias.

system framework

A framework developed by Apple and installed in the file-system location for system software.

task

A Mach abstraction, consisting of a virtual address space and a port name space. A task itself performs no computation; rather, it is the framework in which threads run. See also thread.

thread

In Mach, the unit of CPU utilization. A thread consists of a program counter, a set of registers, and a stack pointer. See also task.

thread-safe code

Code that can be used safely by several threads simultaneously.

TCP/IP

Transmission Control Protocol/Internet Protocol. An industry standard protocol used to deliver messages between computers over the network. TCP/IP support is included in Mac OS X.

transformation

An alteration to a coordinate system that defines a new coordinate system. Standard transformations include rotation, scaling, and translation. A transformation is represented by a matrix.

umbrella framework

A system framework that includes and links with constituent subframeworks and other public frameworks. An umbrella framework "contains" the system software defining an application environment or a layer of system software. See also subframework.

UFS

UNIX file system. An industry standard file-system format used in UNIX-like operating systems such as BSD. UFS in Mac OS X is a derivative of 4.4BSD UFS. Specifically, its disk layout is not compatible with other BSD UFS implementations.

UDF

Universal Disk Format. The file-system format used in DVD disks.

Unicode

A 16-bit character set that assigns unique character codes to characters in a wide range of languages. Unlike ASCII, which defines 128 distinct characters typically represented in 8 bits, there are as many as 65,536 distinct Unicode characters that represent the unique characters used in many languages.

versioning

With frameworks, schemes to implement backward and forward compatibility of frameworks. Versioning information is written into a framework's dynamic shared library and is also reflected in the internal structure of a framework. See also major version, minor version.

virtual address

An address that is usable by software. Each task has its own range of virtual addresses, which begins at address zero. The Mach operating system makes the CPU hardware map these addresses onto physical memory only when necessary, using disk memory at other times. See also physical address.

VFS

Virtual File System. A set of standard internal file-system interfaces and utilities that facilitate support for additional file systems. VFS provides an infrastructure for file systems built in the kernel.

virtual memory

(VM) The use of a disk partition or a file on disk to provide the same facilities usually provided by RAM. The virtual-memory manger on Mac OS X provides 32-bit (minimum) protected address space for each task and facilitates efficient sharing of that address space.